home *** CD-ROM | disk | FTP | other *** search
/ infoROM 17,000 Product Descriptions for Business / infoROM Product Descriptions for Business - ESX Interactive.ISO / argdemos / automc / amcwin.ms_ / amcwin.ms
Encoding:
Text File  |  1992-08-05  |  6.3 KB  |  231 lines

  1. '**************************************************************************
  2. '*                       MSSetup Toolkit Sample 1
  3. '**************************************************************************
  4.  
  5. '*'$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9.  
  10. ''Dialog ID's
  11. CONST WELCOME       = 100
  12. CONST ASKQUIT       = 200
  13. CONST DESTPATH      = 300
  14. CONST EXITFAILURE   = 400
  15. CONST EXITQUIT      = 600
  16. CONST EXITSUCCESS   = 700
  17. CONST OPTIONS       = 800
  18. CONST APPHELP       = 900
  19. CONST BADPATH       = 6400
  20. CONST DEMOMESS      = 7900
  21.  
  22. ''Bitmap ID
  23. CONST LOGO = 1
  24.  
  25. GLOBAL DEST$        ''Default destination directory.
  26. GLOBAL SYSDEST$     ''Windows System directory
  27. GLOBAL WINDEST$     ''Windows directory.
  28. GLOBAL ACADDIR$     ''Directory in which ACAD.EXE exists
  29. GLOBAL DEMO%        ''Is this a demo version
  30. GLOBAL README$      ''Readme file name
  31. GLOBAL PROG$        ''Program executable file name
  32.  
  33. DECLARE SUB Install
  34. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  35.  
  36.  
  37. INIT:
  38.     CUIDLL$ = "mscuistf.dll"            ''Custom user interface dll
  39.     HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  40.  
  41.     SetBitmap CUIDLL$, LOGO        '' Load the Logo
  42.     SetTitle "AM-Classic for Windows Installation"
  43.  
  44.     szInf$ = GetSymbolValue("STF_SRCINFPATH")
  45.     IF szInf$ = "" THEN
  46.         szInf$ = GetSymbolValue("STF_CWDDIR") + "AMCWIN.INF"
  47.     END IF
  48.     ReadInfFile szInf$
  49.  
  50.     WINDEST$ = GetWindowsDir()
  51.     IF IsDirWritable(WINDEST$) = 0 THEN
  52.      '' Take the current work directory in stead
  53.     WINDEST$ = GetSymbolValue("STF_CWDDIR")
  54.     END IF
  55.  
  56.     SYSDEST$ = GetWindowsSysDir()
  57.     IF IsDirWritable(SYSDEST$) = 0 THEN
  58.     '' Install dlls in current work directory
  59.     SYSDEST$ = DEST$
  60.     END IF
  61.  
  62.     ACADDIR$ = "C:\ACADWIN"
  63.  
  64. '$IFDEF DEBUG
  65.     i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  66.     WinDrive$ = MID$(GetWindowsDir, 1, 1)
  67.     IF IsDriveValid(WinDrive$) = 0 THEN
  68.         i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  69.         GOTO QUIT
  70.     END IF
  71. '$ENDIF ''DEBUG
  72.  
  73.  
  74. WELCOME:
  75.     PROG$ = GetSectionKeyFilename("Program files","Executable")
  76.     README$ = GetSectionKeyFilename("Program files","Readme")
  77.     If README$ = "readme.dem" THEN
  78.         DEMO% = 1
  79.         DEST$ = "C:\AM\AMC43DEM"
  80.         sz$ = UIStartDlg(CUIDLL$, DEMOMESS, "FInfoDlgProc", APPHELP, HELPPROC$)
  81.          IF sz$ = "CONTINUE" THEN
  82.              UIPop 1
  83.          ELSE
  84.              GOSUB ASKQUIT
  85.              GOTO WELCOME
  86.          END IF
  87.     ELSE
  88.         DEMO% = 0
  89.         DEST$ = "C:\AM\AMC43WIN"
  90.          sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  91.          IF sz$ = "CONTINUE" THEN
  92.              UIPop 1
  93.          ELSE
  94.              GOSUB ASKQUIT
  95.              GOTO WELCOME
  96.          END IF
  97.     End if
  98.  
  99. GETPATH:
  100.     SetSymbolValue "EditTextIn", DEST$
  101.     SetSymbolValue "EditFocus", "END"
  102. GETPATHL1:
  103.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  104.     DEST$ = GetSymbolValue("EditTextOut")
  105.  
  106.     IF sz$ = "CONTINUE" THEN
  107.         IF IsDirWritable(DEST$) = 0 THEN
  108.             GOSUB BADPATH
  109.             GOTO GETPATHL1
  110.         END IF
  111.         UIPop 1
  112.     ELSEIF sz$ = "REACTIVATE" THEN
  113.         GOTO GETPATHL1
  114.     ELSEIF sz$ = "BACK" THEN
  115.         UIPop 1
  116.         GOTO WELCOME
  117.     ELSE
  118.         GOSUB ASKQUIT
  119.         GOTO GETPATH
  120.     END IF
  121.  
  122.  
  123.     Install
  124.  
  125.  
  126. QUIT:
  127.     ON ERROR GOTO ERRQUIT
  128.  
  129.     IF ERR = 0 THEN
  130.         dlg% = EXITSUCCESS
  131.     ELSEIF ERR = STFQUIT THEN
  132.         dlg% = EXITQUIT
  133.     ELSE
  134.         dlg% = EXITFAILURE
  135.     END IF
  136. QUITL1:
  137.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  138.     IF sz$ = "REACTIVATE" THEN
  139.         GOTO QUITL1
  140.     END IF
  141.     UIPop 1
  142.  
  143.     END
  144.  
  145. ERRQUIT:
  146.     i% = DoMsgBox("Setup sources were corrupted!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  147.     END
  148.  
  149.  
  150.  
  151. BADPATH:
  152.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  153.     IF sz$ = "REACTIVATE" THEN
  154.         GOTO BADPATH
  155.     END IF
  156.     UIPop 1
  157.     RETURN
  158.  
  159.  
  160.  
  161. ASKQUIT:
  162.     sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  163.  
  164.     IF sz$ = "EXIT" THEN
  165.         UIPopAll
  166.         ERROR STFQUIT
  167.     ELSEIF sz$ = "REACTIVATE" THEN
  168.         GOTO ASKQUIT
  169.     ELSE
  170.         UIPop 1
  171.     END IF
  172.     RETURN
  173.  
  174.  
  175.  
  176. '**
  177. '** Purpose:
  178. '**     Builds the copy list and performs all installation operations.
  179. '** Arguments:
  180. '**     none.
  181. '** Returns:
  182. '**     none.
  183. '*************************************************************************
  184. SUB Install STATIC
  185.  
  186.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  187.     CreateDir DEST$, cmoNone
  188.  
  189.     AddSectionFilesToCopyList "Program files", SrcDir$, DEST$
  190.     AddSectionFilesToCopyList "System files", SrcDir$, DEST$
  191.     AddSectionFilesToCopyList "Windows directory", SrcDir$, WINDEST$
  192.  
  193.     CopyFilesInCopyList
  194.  
  195.     cmd$ = MakePath( WINDEST$, "amcwin.cmd")
  196.     acd$ = MakePath( ACADDIR$,"ACAD.EXE")
  197.  
  198.     CreateProgmanGroup "AutoManager Classic", "", cmoNone
  199.     ShowProgmanGroup  "AutoManager Classic", 1, cmoNone
  200.     CreateProgmanItem "AutoManager Classic", "AM-Classic", MakePath(DEST$,PROG$), "", cmoOverwrite
  201.     CreateProgmanItem "AutoManager Classic", "Online manual", "winhelp.exe "+MakePath(DEST$,"amcwin.hlp"), "", cmoOverwrite
  202.     CreateProgmanItem "AutoManager Classic", "Read me", "notepad.exe "+MakePath(DEST$,README$), "", cmoOverwrite
  203.     CreateProgmanItem "AutoManager Classic", "Command file", "notepad.exe "+MakePath(WINDEST$,"amcwin.cms"), "", cmoOverwrite
  204.  
  205. END SUB
  206.  
  207.  
  208.  
  209. '**
  210. '** Purpose:
  211. '**     Appends a file name to the end of a directory path,
  212. '**     inserting a backslash character as needed.
  213. '** Arguments:
  214. '**     szDir$  - full directory path (with optional ending "\")
  215. '**     szFile$ - filename to append to directory
  216. '** Returns:
  217. '**     Resulting fully qualified path name.
  218. '*************************************************************************
  219. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  220.     IF szDir$ = "" THEN
  221.         MakePath = szFile$
  222.     ELSEIF szFile$ = "" THEN
  223.         MakePath = szDir$
  224.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  225.         MakePath = szDir$ + szFile$
  226.     ELSE
  227.         MakePath = szDir$ + "\" + szFile$
  228.     END IF
  229. END FUNCTION
  230.  
  231.